//服务器端接口的封装模块

import AsyncStorage from "@react-native-async-storage/async-storage"

/**
 * 数据服务器基础地址
 */
export const base = 'https://www.codeboy.com/zhsqapi/'
//export const base = 'https://web.codeboy.com/zhsqapi/'

/**
 * 1.2、用户登录
 * 接口地址：user/login
 * 请求方式：POST
 * 请求主体格式：application/json   
 * 请求数据说明：
 *  名称	必填	类型	说明
 *  phone	是	string	手机号    
 *  pwd	是	string	密码
 */
export let userLogin = async (phone, pwd)=>{
  //创建请求URL和选项对象
  let url = base + 'user/login'
  let options = {
    method: 'POST',                       //请求方法  
    headers: {                            //请求头部
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({phone,pwd})     //请求主体，需要手工进行JSON序列化
  }
  //发起异步请求，等待得到响应消息
  let res = await  fetch(url, options)
  //读取响应消息，等待得到JSON内容
  let data = await  res.json()
  //返回主体数据
  return data
}


/**
 * 7.1、商城首页数据
 * 接口地址：mall/index
 * 请求方式：GET
 * 请求头部：token - 用户登录后保存在客户端的身份凭证
 */
export let mallIndex = async ()=>{
  //创建请求URL和选项对象
  let url = base + 'mall/index'
  let options = { 
    headers: {       //请求头部
      'token': await AsyncStorage.getItem('userToken'), //从客户端缓存中读取身份令牌
    }
  }
  //发起异步请求，等待得到响应消息
  let res = await  fetch(url, options)
  //读取响应消息，等待得到JSON内容
  let data = await  res.json()
  //返回主体数据
  return data
}


/**
 * 7.2、返回指定类型的商品列表
 * 接口地址：mall/goods/list
 * 请求方式：GET
 *  查询参数： 
 *  名称	必填	类型	说明
 *  tid	 可选	int	待查询的商品类型  1-折扣商品，默认值 2-新年精选 3-品牌精选 ...
 *  order	可选	string	查询结果排序方法，可选值：soldcount：销量，默认值 price-asc：价格升序排列 price-desc：价格降序排列
 */
export let mallGoodsList = async (tid=1, order='soldcount')=>{
  //创建请求URL和选项对象
  let url = base + `mall/goods/list?tid=${tid}&order=${order}`
  //发起异步请求，等待得到响应消息
  let res = await  fetch(url)
  //读取响应消息，等待得到JSON内容
  let data = await  res.json()
  //返回主体数据
  return data
}



/**
 * 7.3、返回指定编号的商品详情
 * 接口地址：mall/goods/details
 * 请求方式：GET
 * 查询参数： 
 * 名称	必填	类型	说明
 * gid	必需	int	待查询的商品编号
 */
export let mallGoodsDetails = async (gid)=>{
  //创建请求URL
  let url = base + `mall/goods/details?gid=${gid}`
  //发起异步请求，等待得到响应消息
  let res = await  fetch(url)
  //读取响应消息，等待得到JSON内容
  let data = await  res.json()
  //返回主体数据
  return data
}

